#ifndef _RENZO_DYNLIB_
#define _RENZO_DYNLIB_

#include "RenzoMustHave.h"
/*
@description
Reference from Ogre. DynLib acts as a wrapper to a DLL and provides function to load, unload, and access functions in the DLL.
DynLib is a generic wrapper class. Plugin is a Renzoderer specific class.
*/
namespace Renzo {
class DynLib
{
public:
	DynLib(const char* name);
	~DynLib(void);

	/*
	Load DLL
	*/
	void load();
	
	/*
	Unload DLL
	*/
	void unload();
	
	/*
	Get function pointer
	*/
	void* getSymbol(const char* symbol) const;
	
	/*
	DLL's name
	*/
	const char* getName();
private:
	const char* name;

	HINSTANCE hinstLib; 

};
}

#endif